1. Technical Field
The present invention relates to multi-tenancy software as a service application and middleware, and automated dynamic placement, in particular the automated multi-tenancy dynamic placement advisor.
2. Discussion of Related Art
Software-as-a-Service (SaaS) lowers the cost of development, customization, deployment and operation of a software application while supporting multiple tenants over the Internet. In general, SaaS is associated with business software applications. SaaS is a Web-based software application deployed and operated as a hosted service over the Internet and accessed by users.
Multi-tenants in addition to multi-users supports, installation of application on a managed Internet data center with remote management accessibility are a few characteristics of a multi-tenancy SaaS application.
In the SaaS business model, the ownership, technology infrastructure and management responsibility of the application has moved to application service providers (ASPs) from tenants or customers. It benefits ASPs by reducing hosting cost due to customization and scalability with increasing number of tenants or customers. It also benefits the tenants or customers through their saving in money and time. Tenants can gain immediate access to the latest IT innovations and improvements provided by the ASP without spending their own IT budgets. The cost to use the application can be a per user basis and pays as it goes.
In a SaaS model, the multi-tenancy support can be applied to four different software layers: the application, middleware, the virtual machine (VM) and the operating system layers. For the application layer, there are four levels of SaaS support model as shown in FIG. 1. Level one 101 has a separate instance for each tenant's customized code base and it is similar to the ASP software application model. Level two 102 has a separate instance for each tenant but the instances come from a single code base with configuration options. With a single application code base to support several tenants, the total deployment time is shorter. Level three 103 has a single instance for all tenants with customized metadata for each tenant. In this level, the updating of application features are simpler and centralized because there is only one instance of a single source code base. Level four 104 has a load-balanced farm of identical instances with customized metadata and configuration options for its tenants.
There are many benefits of multi-tenancy application deployment in Levels three 103 and four 104. The main benefits are the reduction of IT expenses and cost savings in software license fees and hardware expenses by reducing number of development, staging, training, disaster recovery servers and increase usages of storages. Other benefits are in deployment, provisioning, on-boarding and maintenance by reducing IT processes, such as server and application setup and configuration, and reducing support staffs in server and application tuning, backup, patch and upgrade, as well as cooling and HVAC, power and lighting.
However, there are initial setup, configuration and maintenance steps that have to be carried out first in order for the application to support multi-tenants in a SaaS operational structure. There are also a number of challenges that require solutions before the full benefits of multi-tenancy application deployment can be realized. It is difficult to calculate resource requirements for an addition tenant with a number of new users, and to meet the constraints of all tenants in an application instance. Further, an administrator needs the advice on a placement package of multi-tenancy applications on a set of servers without violating any service level agreement (SLA) requirements of all tenants. Also, the cost savings among different multi-tenancy placement packages have to be compared and optimized even there are so many variables involved. In addition, limiting factors and bottle-necks on computing resources required for multiple instances need to be determined, each with multi-tenants of different constraints. It is difficult to automate the placement package in a distributed computing environment. Others challenges are multi-tenancy data models, tenant isolation and security related issues.
To date, there are many reported research activities on the static and dynamic placements of multi-users applications as well as their optimizations. A number of commercial software products for the placement, performance analysis and sizing for multiple applications on a set of servers are also available. However, all these research reports are not tenant aware, and do not take into the account of multi-tenancy application with a single instance supporting multi-tenants in addition to multi-users in each tenant. The available commercial products also do not apply to the placement of multi-tenancy applications. Most manual server estimates are oversized and thus more expensive.